/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.its.dsw2.view;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.its.dsw2.biblioteca.bl.UsuarioBlLocal;
import mx.its.dsw2.biblioteca.enumeraciones.EnumEstados;
import mx.its.dsw2.biblioteca.modelo.Usuario;

/**
 *
 * @author 100101
 */
@ManagedBean
@SessionScoped
public class UserBean {
    @EJB
    private UsuarioBlLocal usuarioBl;
    private List<Usuario>lista;
    private List<Integer>listaEstados;
    private Usuario user;
    private String accion;
    /**
     * Creates a new instance of UserBean
     */
    public UserBean() {
        user=new Usuario();
    }

    public Usuario getUser() {
        return user;
    }

    public void setUser(Usuario user) {
        this.user = user;
    }

    public List<Usuario> getLista() {
        lista=usuarioBl.getAll();
        return lista;
    }

    public List<Integer> getListaEstados() {
        listaEstados=new ArrayList<Integer>();
        EnumEstados[] items=EnumEstados.values();
        for(EnumEstados e:items){
            listaEstados.add(e.ordinal());
        }
        return listaEstados;
    }
    
    
    
    public String procesarAccion(){
            if(accion.equalsIgnoreCase("Nuevo")){
        usuarioBl.register(user);
            }else{
          if(accion.equalsIgnoreCase("Editar")){
              usuarioBl.modify(user);
          }else{
              if(accion.equalsIgnoreCase("Eliminar")){
                  usuarioBl.remove(user);
              }
          }      
            }
            accion="";
        return "UserList";
    }
    
    public void prepararNuevo(ActionEvent evt){
        accion="Nuevo";
        user=new Usuario();
    }
    
    public void prepararEditar(ActionEvent evt){
        accion="Editar";
         int index=Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        user=lista.get(index);
    }
    
    public void prepararEliminar(ActionEvent evt){
        accion="Eliminar";
         int index=Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
         user=lista.get(index);
    }
    
    public String llamadaPaginas(){
        String link="";
        if(accion.equalsIgnoreCase("Editar")||accion.equalsIgnoreCase("Nuevo")){
            link="UserCreateEdit";
        }else{
            if(accion.equalsIgnoreCase("Eliminar")){
                link="UserList";
            }
        }
        return link;
    }
    
}
